Skip to content

fix(drivers/115_open): recover transient path metadata - #2816

Merged
Suyunmeng merged 4 commits into
mainfrom
fix/115-open-metadata
Jul 22, 2026
Merged

fix(drivers/115_open): recover transient path metadata#2816
Suyunmeng merged 4 commits into
mainfrom
fix/115-open-metadata

Conversation

@Suyunmeng

@Suyunmeng Suyunmeng commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary / 摘要

Fix 115 Open path lookups that temporarily return object-not-found or incomplete
metadata after filesystem changes.

修复文件系统变更后,115 Open 按路径查询短暂返回对象不存在或不完整元数据的问题。

  • Falls back to parent directory listings when path metadata is unavailable or
    incomplete.
    当路径元数据不可用或不完整时,回退到父目录列表查询。

  • Maps 115 Open error code 430004 to the driver’s object-not-found flow.
    将 115 Open 错误码 430004 映射到驱动的对象不存在处理流程。

  • Restores file size and timestamps from path metadata or directory listings.
    从路径元数据或目录列表中恢复文件大小与时间戳。

  • Resolves transiently unavailable parent paths through ancestor listings.
    当父路径短暂不可用时,通过祖先目录列表解析父路径。

  • This PR has breaking changes.
    / 此 PR 包含破坏性变更。

  • This PR changes public API, config, storage format, or migration behavior.
    / 此 PR 修改了公开 API、配置、存储格式或迁移行为。

  • This PR requires corresponding changes in related repositories.
    / 此 PR 需要关联仓库同步修改。

Related repository PRs / 关联仓库 PR:

Related Issues / 关联 Issue

Relates to #2721
Relates to #2788

Testing / 测试

  • go test ./...
  • Manual test / 手动测试:
    • go test ./drivers/115_open
    • go vet ./drivers/115_open
    • gofmt on changed Go files
    • git diff --check main...HEAD

Full project tests and product builds were not run per the task constraint.

Checklist / 检查清单

  • I have read CONTRIBUTING.
    / 我已阅读 CONTRIBUTING
  • I confirm this contribution follows the repository license, contribution policy, and code of conduct.
    / 我确认此贡献符合仓库许可证、贡献规范和行为准则。
  • I have formatted the changed code with gofmt, go fmt, or prettier where applicable.
    / 我已按适用情况使用 gofmtgo fmtprettier 格式化更改代码。
  • I have requested review from relevant maintainers or code owners where applicable.
    / 我已在适用情况下使用“Request review”功能请求相关代码作者审查。

AI Disclosure / AI 使用声明

  • This PR includes AI-assisted content.
    / 此 PR 包含 AI 辅助内容。

Tools used / 使用工具:

  • ChatGPT
  • Codex
  • GitHub Copilot
  • Claude
  • Gemini
  • Other (please specify) / 其他(请注明):

Usage scope / 使用范围:

  • Code generation / 代码生成

  • Refactoring / 重构

  • Documentation / 文档

  • Tests / 测试

  • Translation / 翻译

  • Review assistance / 审查辅助

  • I have reviewed and validated all AI-assisted content included in this PR.
    / 我已审核并验证此 PR 中包含的所有 AI 辅助内容。

  • I have ensured that all AI-assisted commits include Co-Authored-By attribution.
    / 我已确保所有 AI-assisted commits include Co-Authored-By attribution.

  • I can reproduce all AI-assisted content included in this PR without any AI tools.
    / 我可以在没有任何 AI 工具的情况下重现此 PR 中包含的所有 AI 辅助内容。

Suyunmeng and others added 2 commits July 22, 2026 03:36
Fall back to the parent directory listing when path metadata is temporarily
missing or incomplete so filesystem operations receive usable objects.

Co-authored-by: Claude <[email protected]>
Continue resolving parent directories through ancestor listings when the path
metadata endpoint briefly reports them missing.

Co-authored-by: Claude <[email protected]>
@Suyunmeng
Suyunmeng requested a review from jyxjjj July 21, 2026 19:44
@jyxjjj

jyxjjj commented Jul 21, 2026

Copy link
Copy Markdown
Member

sdk侧改动这个code会更好一点吧

@xrgzs xrgzs changed the title fix(115_open): recover transient path metadata fix(drivers/115_open): recover transient path metadata Jul 22, 2026
@jyxjjj

jyxjjj commented Jul 22, 2026

Copy link
Copy Markdown
Member

sdk合并了 发一下然后这里更新下

@Suyunmeng

Suyunmeng commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

The fixes have been migrated to 115-sdk-go(OpenListTeam/115-sdk-go#6) and are now being implemented.

Use the merged SDK error semantics for code 430004 and pin the integration to
its immutable merged pseudo-version until the next SDK release is published.
@jyxjjj

jyxjjj commented Jul 22, 2026

Copy link
Copy Markdown
Member

getFromParent 在父路径也返回 NotFound 时会带着相同的尾斜杠路径递归,可能无限递归

size <= 0 会误判合法零字节文件。

Use the released SDK error semantics and normalize parent paths so transient
metadata gaps recover from ancestor directory listings.

Co-authored-by: Claude <[email protected]>
@Suyunmeng
Suyunmeng merged commit e1ded83 into main Jul 22, 2026
12 checks passed
@Suyunmeng
Suyunmeng deleted the fix/115-open-metadata branch July 22, 2026 05:00
@jyxjjj jyxjjj linked an issue Jul 22, 2026 that may be closed by this pull request
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] 最近几个版本改动导致115开放平台出现的问题

2 participants